package data;

import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;

import domain.SubCategoriaRepository;
import util.SubCategoriaDTO;
import util.SubCategoriaAssembler;
import domain.SubCategoria;

public class SubCategoriaRepositoryDAOImpl implements SubCategoriaRepository {
 
 private SubCategoriaDAO profDAO;
 
 SubCategoriaRepositoryDAOImpl(SubCategoriaDAO profDAO) {
   this.profDAO = profDAO;
 }
 
 public boolean insertSubCategoria(SubCategoria prof) {
	SubCategoriaDTO profDTO = SubCategoriaAssembler.CreateDTO(prof);
	return (profDAO.insert(profDTO));
 }
 
 public boolean deleteSubCategoria(SubCategoria prof) {
   SubCategoriaDTO profDTO = SubCategoriaAssembler.CreateDTO(prof);
   return (profDAO.delete(profDTO));
 }
 
 public SubCategoria findSubCategoria(int id) {
   SubCategoriaDTO profDTO = profDAO.findById(id);
   if (profDTO!=null) {
     SubCategoria prof = new SubCategoria();
     System.out.println(profDTO.getNombre());
     SubCategoriaAssembler.Update(prof,profDTO);
     return prof;
   }
   return null;
 }
 
 public boolean updateSubCategoria(SubCategoria prof) {
   SubCategoriaDTO profDTO = SubCategoriaAssembler.CreateDTO(prof);
   return (profDAO.update(profDTO));
 }
 
 public Collection findAllSubCategoria() {
   Collection profsDTO = profDAO.findAll();
   List profList = new ArrayList();
   Iterator itr = profsDTO.iterator();
   while (itr.hasNext()) {
     SubCategoria prof = new SubCategoria();
     SubCategoriaDTO profDTO = (SubCategoriaDTO)itr.next();
     SubCategoriaAssembler.Update(prof,profDTO);
     profList.add(prof);
   }
   return profList;
 }
}